#include "UART.h"

#ifdef _UART_EN_
void	initUART(void)
{
	P_UART_TX = 1;			//	
	M_UART_TX = 0;			//	
}

void	UART_SendByte(uint8_t txdata)
{
	volatile uint8_t	i;
	// bit f_data_end;
	
//	txdata = 0xaa;
	
	_emi = 0;
	
	//��ʼ��
	P_UART_TX = 0;
	GCC_DELAY(C_DELAY_HEAD);

	//����λ
	for(i=0; i<8; i++)
	{
		if(txdata&0x01)		{P_UART_TX=1;	GCC_DELAY(C_DELAY_DATA1); }
		else				{P_UART_TX=0;	GCC_DELAY(C_DELAY_DATA0); }		
		txdata = txdata>>1;
	}
	
//	if(txdata&0x01)		{P_UART_TX=1;	GCC_DELAY(C_DELAY_LAST_BIT_DATA1);}
//	else				{P_UART_TX=0;	GCC_DELAY(C_DELAY_LAST_BIT_DATA0);}	
//	if(f_data_end==0)		
	GCC_DELAY(1);
	//������
	P_UART_TX = 1;
	GCC_DELAY(C_DELAY_TAIL);

	_emi = 1;
}



#if 0
void	UART_Printf(char* str)
{
	while(*str)
	{
		UART_SendByte(*str++);
	}
}

void	UART_PrintfPara(char* str, uint8_t para)
{
	char strBuf[5];
	uint8_t i;
	
	while(*str)
	{
		UART_SendByte(*str++);
	}
	
	strBuf[0]=para/100+'0';
	para = para%100;
	strBuf[1]=para/10+'0';
	strBuf[2]=para%10+'0';
	strBuf[3]='\r';
	strBuf[4]='\n';
	for(i=0; i<5;i++)
	{
		UART_SendByte(strBuf[i]);
	}
}
void	UART_PrintfPara16(char* str, uint16_t para)
{
	char strBuf[7];
	uint8_t i;

    GCC_CLRWDT();
    
	while(*str)
	{
		UART_SendByte(*str++);
	}

    strBuf[0]=para/10000+'0';
    para = para%10000;
	strBuf[1]=para/1000+'0';
	para = para%1000;
	strBuf[2]=para/100+'0';
    para = para%100;
	strBuf[3]=para/10+'0';
	strBuf[4]=para%10+'0';
	strBuf[5]='\r';
	strBuf[6]='\n';
	for(i=0; i<7;i++)
	{
		UART_SendByte(strBuf[i]);
	}
}
#endif
#endif
